Method for adaptive mission execution on an unmanned aerial vehicle

ABSTRACT

A method for adaptive mission execution by an unmanned aerial vehicle includes receiving a set of pre-calculated mission parameters corresponding to an initial UAV mission; collecting UAV operation data during flight of the unmanned aerial vehicle; calculating a set of modified mission parameters from the set of pre-calculated mission parameters and the UAV operation data, the set of modified mission parameters corresponding to a modified UAV mission; and executing the modified UAV mission on the unmanned aerial vehicle.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/601,867, filed 22 May 2017, which is a continuation of U.S. patentapplication Ser. No. 14/717,955, filed 20 May 2015, which claims thebenefit of U.S. Provisional Application No. 62/000,933, filed on 20 May2014, and of U.S. Provisional Application No. 62/045,473, filed on 3Sep. 2014, all of which are incorporated in their entireties by thisreference.

TECHNICAL FIELD

This invention relates generally to the field of unmanned aerialvehicles and more specifically to a new and useful method for adaptivemission execution on an unmanned aerial vehicle in the field of unmannedaerial vehicles.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a chart representation of a method of a preferred embodiment;

FIG. 2 is a system diagram representation of an unmanned aerial vehicle;

FIG. 3 is a schematic representation of example mission modification ofa method of a preferred embodiment; and

FIG. 4 is an example representation of a mission parameter adjustmentdisplay.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments of the inventionis not intended to limit the invention to these preferred embodiments,but rather to enable any person skilled in the art to make and use thisinvention.

As shown in FIG. 1, a method 100 for controlling an unmanned aerialvehicle (UAV) includes: receiving a set of a pre-calculated missionparameters corresponding to an initial UAV mission S110, collecting UAVoperation data during flight of the UAV S130, calculating a set ofmodified mission parameters based on the UAV operation data S140, andexecuting the modified mission on the UAV S150. The method 100 mayadditionally or alternatively include executing the initial UAV missionS120, and/or executing a pre-mission test S125.

Generally, the method functions to test operation of a UAV during orjust prior to a execution of a mission by the UAV, to check the statusof the UAV against a flightpath for the mission, and to adjust theflightpath and/or other mission parameters if necessary to ensure thatthe UAV can complete the mission satisfactorily. For example, the methodcan analyze operation data of the UAV to detect a state of charge of abattery within the UAV, to detect a stability of the UAV airframe,and/or to detect a maximum speed and a stall speed of the UAV, etc., andthe method can then adjust a cruise speed, a ground area to be covered,the flightpath, etc. for the mission to substantially ensure that theUAV—in its current measured state—can complete the mission (e.g., asurveillance mission, a logistics or delivery mission, or a mappingmission). The method can similarly model operation of a particular UAVbased on UAV flight data collected during a test flight flown by theparticular UAV, and the method can then pass the model of the particularUAV to a mission generator such that subsequent missions generated forthe particular UAV can accommodate or compensate for a substantiallyunique configuration, condition, etc. of the particular UAV, which maydiffer in configuration or condition from other UAVs in a fleet of UAVs.For example, the method can collect battery capacity data, motorefficiency data, fuselage capacity and stability data, etc. of the UAVas the UAV flies a standardized test flight and then calculate apreferred cruise speed based on motor efficiency, a minimum air flightspeed, a maximum air speed, and/or a relationship between total (air orground) range relative to air speed, etc. of the UAV. In this example,at a later date following the standardized test flight, a missiongenerator can then access these calculated values and implement thesevalues as parameters to generate a flight path of the UAV over a groundarea of interest such that the flight path inherently accommodateslimitations of the UAV.

The method can further function to track usage of (e.g., hours on) oneor more components of the UAV, to compare usage of these components tocomponent use regulations and/or manufacturer use suggestions, and toprompt an owner or operator of the UAV to preemptively swap outcomponents of the UAV as these components reach the end of theirrespective useful or regulated lives. For example, the method cancollect motor speed data during each mission flown by a UAV to track atotal number of hours of operation of the UAV motor (or a total numberof rotations of the motor throughout missions flown by the UAV), comparethe total hours of operation on the motor to the manufacturer'ssuggested total hours on the model of motor before replacement orrebuild, and then transmit a notification (e.g., a message, an email) toan account of an operator associated with the UAV to prompt the operatorto replace or rebuild the motor. The method can also automaticallydetect changes to the UAV, such as replacement of a motor, a propeller(or “prop”), a control surface actuator, a battery, or all or a portionof the fuselage, etc., and the method can automatically update adatabase of log data specific to the UAV to account for such change. Forexample, the method can calculate a relationship between air speed ofthe UAV and current draw of the motor during the test flight, comparethis calculated relationship to a similar relationship calculated forthe UAV during a previous flight or test flight to determine if a newmotor was swapped into the UAV prior to the current test flight, andupdate a log of specific to the UAV to reflect this change in motors. Inparticular, in this example, the method can reset a time counter for amotor within the UAV to “o” to reflect detected installation of a newmotor into the UAV.

The method can therefore collect data from a UAV and manipulate thesedata to modify pre-calculated flight paths and to log use of various(critical) components of the UAV. The method can therefore executeremotely from the UAV, such as on a remote computer system thatgenerates missions for one or more UAVs (e.g., a fleet of UAVs)according to selected ground areas of interest and/or that controls UAVsremotely during execution of missions. The computer system can be acloud-based computer (e.g., Amazon EC2), a mainframe computer system, agrid-computer system, or any other suitable computer system. Forexample, the computer system can be a remote server that communicateswith one or more UAVs over HTTP (or TCP or UDP) protocols through a webservice (e.g., Amazon AWS). The computer system can thus transmit data(e.g., mission commands, flight paths, UAV location, UAV operation data)to and from a UAV over a cellular, Wi-Fi, satellite, or other suitablewireless network. Alternatively, the method can be implemented on alocal computing device. For example, a local flight control stationspecific to one or more UAVs and including a wireless radio canimplement the method to communicate with the UAV(s) directly over acellular communication protocol before, during, and/or upon completionof the mission. Yet alternatively, the method can be implemented by acomputing device arranged in the UAV within the fleet. For example, aUAV can incorporate a processor that interfaces with an autopilot moduleand a wireless transceiver within the UAV to collect UAV operation data(e.g., GPS data, telemetry data, sensor status data, networkconnectivity data, etc.), to manipulate the UAV operation data, to logthe operation data, to transmit prompts to an operator, and/or to modifya flightpath according to detected limitations of the UAV. However, themethod can be implemented by any one or more of a remote computersystem, a local flight control station, or one local computing devicearranged in a UAV. For example, in a default setting, the method can beimplemented by the remote computer system but, when long-range wireless(e.g., cellular) communication with the fleet is lost, a local computingdevice within a UAV can assume a master control position and implementremaining elements of the method until long-range wireless communicationis regained. However, the method can be implemented in any othersuitable way.

The method can therefore execute in conjunction with a UAV thatincludes: flight control surfaces; actuators configured to manipulatethe flight control surfaces; a motor; a prop; an autopilot moduleconfigured to control the actuators and the propulsion assemblyaccording to a scheduled flightpath; a co-pilot module providing aninterface between a remote computer network and the autopilot module,actuators within the UAV, and sensors within the UAV; and a fuselagesupporting the flight control surfaces, the actuators, the autopilotmodule, the propulsion assembly, and the co-pilot module, as shown inFIG. 2. The UAV can also include various sensors, such as athree-dimensional optical sensor, (e.g., a LIDAY system, a stereoscopiccamera), a two-dimensional sensor (e.g., a CMOS digital camera, athermal imaging sensor), and/or a single-dimensional sensor (e.g., achemical sensor, a temperature sensor, a barometric sensor), etc., thatcapture data during missions executed by the UAV, and the co-pilotmodule can interface with a wireless communication module within the UAVto upload data from these sensors (and actuator data) to a remotedatabase executing all or a portion of the method. The UAV can thereforeinclude a fixed-wing aircraft. Alternatively, the UAV can include avertical takeoff and landing (VTOL) aircraft. The UAV can also be acomponent of an unmanned aerial system (UAS) that includes sensors,ground control software (GCS), infrastructure (e.g., radios, a missioncontrol station), support crews, maintenance crews, etc.

S110 includes receiving a set of a pre-calculated mission parameterscorresponding to an initial UAV mission. The set of pre-calculatedmission parameters preferably include a UAV flightpath (specified byglobal coordinates or any other coordinate system, including localcoordinate systems), but may additionally or alternatively include anyparameters corresponding to a UAV mission (e.g., altitude, air speed,ground speed, flight time, flight control surface positions, camerashutter events, actuator settings, etc.). For example, the set ofpre-calculated mission parameters may include a set of waypoints for theUAV to fly along, along with a set of parameters specifying when a UAVcamera should take aerial photographs along the route.

S110 preferably includes receiving pre-calculated mission parameters atthe UAV from a remote server over a wireless internet connection (e.g.,a cellular connection), but may additionally or alternatively includereceiving pre-calculated mission parameters in any suitable manner(e.g., via a flash drive plugged into the UAV).

S120 includes initiating execution of the initial UAV mission. S120functions to begin UAV flight (and/or other operations) according to thepre-calculated mission parameters. The method 100 may include S120 for anumber of reasons; e.g., if the UAV is expected to be able to completethe initial mission. If data collected during the initial UAV missionindicates a less-than-satisfactory mission outcome (as collected andanalyzed in S130), the mission may be modified (S140 and S150).

S125 includes executing a pre-mission test. In one implementation, thepre-mission test is a standardized test defining a test flightpathsuitable to test various components of the UAV, such as a motor, abattery, a prop, a fuselage, and/or control surfaces of the UAV, and theco-pilot within the UAV can interface with various sensors and actuatorswithin the UAV to collect data for these components as the UAV executesthe test flightpath. For example, the pre-mission test can define: afirst portion of the test flightpath specifying level flight at analtitude of loom at full power from which a maximum air speed of the UAVis determined; a second portion of the test flightpath specifying anear-vertical climb from loom altitude from which a maximum thrust ofthe UAV is determined; a third portion of the test flightpath specifyinga decrease in air speed until stall is achieved from which a stall speedof the UAV is determined; a fourth portion of the test flightpathspecifying a cycling ramping the motor from a no-power to a full-powersetting from which a motor torque curve, a maximum motor torque, a motorefficiency curve, a propeller efficiency, a battery state of charge,and/or a maximum battery supply current, etc. of the UAV is calculated;and a fifth portion of the test flightpath specifying cycles of pitch,yaw, and/or roll control surfaces from which an efficiency of thefuselage and/or a weight of the fuselage is calculated. For example, thetotal standardized pre-mission test sequence can be completed within aperiod of sixty seconds prior to execution of a mission thirty-minutesin duration. However, the standardized pre-mission test sequence candefine any other flightpaths or operations from which various UAVparameters or functions can be calculated.

Pre-mission tests may test any UAV components, including any sensorscoupled to the UAV (e.g., cameras, chemical sensors, photodetectors,microphones, RADAR/SONAR sensors, etc.)

In addition or as an alternative to UAV component tests, pre-missiontests may include flightpaths or other operations directed to measuringcharacteristics of the flight environment (e.g., air temperature, windspeed, obstacles present in a particular area, etc.).

In one variation, S125 may include performing an “on-boarding” flighttest when a (new) UAV is added to a UAV fleet or during a “reset” flighttest following a rebuild. For example, the UAV can takeoff, execute thepre-mission test sequence, offload any of the foregoing data to theremote UAV management network, and then land again without executinganother mission, S130 can characterize the UAV from these data, and theremote UAV management network can implement this characterization of theUAV when generating flight paths and flight parameters of the UAV insubsequent missions designating the UAV and elected by an operator.

The method 100 may include either or both of S120 and S125. For example,the method may include performing a pre-mission test (S125), passing thepre-mission test, and then initiating execution of the initial missionwithout modification (S120).

S130 includes collecting UAV operation data during flight of the UAV.S130 functions to collect UAV operation data (e.g., UAV component data,UAV sensor data, environmental data, etc.) for purposes of modifying theinitial UAV mission.

UAV operation data preferably includes any data relevant to UAVoperation; e.g., air speed, heading, ground speed, position,orientation, camera data, air temperature data, actuator status, sensordata, payload data, UAV communication data, UAV flightpath, andhumidity. In particular, UAV communication data may include missionparameters transmitted/received by other UAVs. For example, a first UAVmay update a flightpath for aerial photography and then transmit thatupdated flightpath to other UAVs. If the new flightpath intersects withany other UAV's flightpath, the intersecting UAV may alter itsflightpath to avoid covering the same area redundantly (unlessoverlapping coverage is desired).

S130 may be performed at any time, including during a pre-mission testand/or in real-time during a mission.

S130 preferably includes collecting UAV operation data at the UAV, butmay additionally or alternatively include transmitting UAV operationdata to be collected by a remote computer. For example, the UAV co-pilot(or other processor, memory module, etc.) within the UAV can sample theautopilot, various sensors, and various actuators within the UAV, suchas according to an internal or external clock and a preset sampling rate(e.g., 20 Hz) and then upload these data substantially in real-time to aremote computer network over wireless communication. A remote UAVmanagement network can receive data downloaded from the co-pilot overcellular communication protocol as these data are collected at the UAV.Alternatively, collected data could be retrieved in bulk upon completion(or abortion) of a mission or pre-mission test sequence.

S130 may include processing raw data received at the UAV (or remotecomputer). For example, S130 may include calculating a motor efficiencybased on motor rotational speed and airspeed.

In one example, S130 includes receiving an output voltage (and/or anoutput current) of a main battery within the UAV at various throttlesettings of the motor, such as at 0%, 25%, 50%, 75%, and 100% throttlesettings, and then transforming these voltage readings into batterystate of charge based on a known discharge curve of the battery. S130can alternatively include integrating a current output of the batteryover time, implementing Kalman filtering, or monitoring an internalpressure of the battery to calculate a state of charge of the battery.S130 can then calculate a range of the UAV based on the state of chargeof the UAV, and also accommodate for wind conditions over a ground areaover which the UAV will fly during the mission to calculate total grounddistance that the UAV can traverse in its current state. In anotherexample, S130 can record collect steady state temperatures within thefuselage for various throttle settings of the motor, and calculate amaximum allowable throttle setting or a maximum allowable current drawfor the current mission based on a maximum allowable battery and/orfuselage temperature for the UAV. In a similar example, S130 can collectsteady state temperatures of the motor at various throttle settings, andidentify a maximum air speed of the UAV based on a maximum allowabletemperature of the motor. In another example, S130 can collectacceleration and rotation data from an accelerometer and a gyroscopearranged within the UAV during various maneuvers executed by the UAVduring the pre-mission test sequence, and characterize pitch, yaw, androll responses of the UAV to manipulation of the control surfaces todetect a stability of the UAV flight. In this example, S130 candetermine that the UAV is unstable and therefore unfit for flight if theUAV exhibits extreme changes pitch, yaw, and/or roll in response to asmall change in the position of a control surface, if the UAV exhibitsno change in pitch, yaw, and/or roll in response to a large change inthe position of a control surface, or if constant manipulation of thecontrol surfaces is required for the UAV to fly in a straight line. Inthis example, S130 can also determine a tightest turning radius (at oneor more cruise speeds), climb rate, and/or descent rate of the UAV fromthese rotation and acceleration data. However, S130 can collect and/orreceive UAV operation data in any other way and extract any one or moreUAV characteristics from these data.

In one implementation, S130 is executed by a computer network thatreceives data from the UAV in raw, unprocessed form or in compressedform; the network can then process these data to determine if the UAV iscapable of competing a current mission (within a reasonable degree ofcertainty). Alternatively, the UAV can execute all or a portion of S130locally and then upload results (e.g., a calculated motor torque curve,maximum motor torque, motor efficiency curve, propeller efficiency,battery state of charge, maximum battery supply current, etc.) to thecomputer network.

S140 includes calculating a set of modified mission parameters based onthe UAV operation data. S140 is preferably executed in response to adetermination or estimation that the UAV is unable to complete theinitial mission, based on data collected during the pre-mission testand/or execution of the initial mission. Additionally or alternatively,S140 may be performed at any time in response to any stimulus; forexample, a set of modified mission parameters may be calculated inresponse to a user request for mission modification.

S140 may include comparing UAV characteristics (as collected andprocessed in S130) to characteristics required for performance of theset of pre-calculated mission parameters to determine if the UAV iscapable of completing the mission as currently defined and/or whatmodification to the mission may be necessary to increase odds ofsuccess.

In one implementation, UAV component data is manipulated to generate acurve defining predicted total ground distance that can be covered bythe UAV relative to ground speed of the UAV, based on a state of chargeof the battery within the UAV, a curve defining a relationship betweenair speed and battery output power (and bounded by the maximum air speedand stall speed of the UAV), and a current (or forecast) weathercondition (e.g., wind speed and direction) at the location specified inthe mission (e.g., as collected from a remote weather database). In thisimplementation, a total ground distance that must be covered by the UAVto complete the mission as currently defined can be calculated andcompared to a maximum total ground distance that can be traversed by theUAV in its current state to determine if the UAV can complete themission. (In this implementation, local weather (e.g., wind) data can beapplied to this comparison, such as by accessing local wind data from aremote weather database.) If the total ground distance required tocomplete the mission does not exceed the total estimated ground range ofthe UAV, the UAV can begin the mission as currently prescribed.Alternatively, an air speed specified in the mission parameters can beadjusted to increase an efficiency of the UAV during the mission, suchas by setting a target air speed of the UAV at an air speedcorresponding to a best compromise of maximum motor efficiency andmaximum battery efficiency, and updating parameters of the mission toreflect this new target air speed for the UAV during execution of themission. Alternatively, S140 can calculate a maximum air speed of theUAV at which the UAV can still complete the mission in order to reducetotal flight time of the UAV (and therefore total operator cost) forcompletion of the mission, update parameters of the mission to reflectthis new target air speed for the UAV.

However, in this implementation, if the total ground distance to becovered by the UAV during the mission exceeds the total range capacityof the UAV, S140 can include altering the mission to accommodate thisdeficiency of the UAV. For example, S140 can change a primary directionof flight of the UAV during the mission to reduce a duration of themission over which the UAV flies directly into the wind, therebyextending a ground distance that can be traversed by the UAV duringexecution of the updated mission. In another example in which themission specifies a ground area of interest for the UAV to image with acamera installed therein, S140 can reduce a size of the ground area ofinterest such that a total ground distance that the UAV must cover toachieve a target lateral step-over distance and a target longitudinalstep-over distance between images captured by the UAV without exceedingthe estimated total ground range of the UAV, such as shown in FIG. 3. Ina similar example, in which the mission specifies a ground area ofinterest for the UAV to image with a camera installed therein, S140 canincrease an altitude at which the UAV is to capture images of aspecified ground area to reduce a number of cut-back sections of theflight path of the mission to reduce a total ground distance that mustbe covered by the UAV to fully image the area of interest. In anotherexample, S140 can determine that a target cruise speed of the UAV is tolow or too high for the UAV to complete the mission as currentlyspecified, and S140 can thus set a new target cruise speed for themission such that the UAV can operate at an improved efficiencysufficient to complete other parameters of the mission. In yet anotherexample, S140 includes splitting the mission into segments. Missionsegments may then be executed serially or in parallel by one or moreUAVs.

S140 can therefore handle data from multiple UAVs to generate and/ormanipulate corresponding missions parameters. However, S140 can alterany other parameter of the mission.

In one implementation, a UAV executes a mission to take aerialphotographs of a particular area. The photographs collected by the UAVare analyzed in S130 (by the UAV and/or by a remote computer); anyimages deemed unsatisfactory (e.g., a particular area covered in shadow,a blurry photograph) may result in the flight plan of the UAV beingmodified to recapture the areas of issue.

In another implementation, a UAV executes a mission following an oilpipeline while taking samples with a hydrocarbon sensor. If the UAVdetects anomalies in sensed hydrocarbon data collected in S130 (e.g., anunexpectedly high level of a particular hydrocarbon), the mission may bealtered by S140 to provide further information on areas containing theanomalies (e.g., the flightplan may be altered to a spiral patternmapping a circle centered on the anomaly).

In a variation of a preferred embodiment, S140 may include prompting anoperator to select a type of change to be made to the mission and/or toconfirm a proposed change to the mission. For example, S140 can presentprompts to the operator—such as through an operator interface accessedthrough a web browser—to select one of longer mission time (e.g., due toreduced UAV cruise speed), reduced image resolution (e.g., due toincreased altitude during imaging passes or increased step-over distancebetween imaging passes), or reduced size of ground area of interest(e.g., from removal of a portion of the original ground area of interestfrom the modified mission). In another example, S140 can prompt the userto set a position of a slider bar along a continuous slider defining a“greatest distance” position at one extreme and a “longest mission time”at an opposite extreme, and S140 can adjust parameters of the missionaccording to a compromise elected by the user through manipulation ofthe slider bar, as shown in FIG. 4. In another example, S140 can promptthe operator to confirm the modification, to cancel to mission, or toselect a different UAV to perform the mission. S140 can also account fora margin of safety for calculating a range of the UAV and modifyingmission parameters according to substantially ensure that the UAV willsuccessfully land in a designated area.

In this variation, S140 can then upload an updated mission (or discretemodified parameters of the mission) to the UAV followed by a trigger tobegin execution of the updated mission.

In yet another variation of a preferred embodiment, S140 can determinethat the UAV cannot complete the mission as currently defined or receiveconfirmation from an operator to abort the mission, and thus ordergrounding of the UAV (performed by S150). For example, S150 can transmita prompt to the UAV to immediately execute a landing sequence defined atan end of the mission currently loaded onto the UAV.

S150 includes initiating execution of the modified mission on the UAV.S150 preferably includes implementing modifications to the initialmission indicated by the modified mission parameters calculated in S140.S150 preferably includes executing modified mission parameters inreal-time (e.g., if mission parameters are updated mid-mission) but mayadditionally or alternatively execute modified mission parameters at anytime. For example, if modified mission parameters are calculated basedon data collected during a pre-flight test, the modified missionparameters may be implemented whenever the modified mission is scheduledto begin (e.g., immediately after the pre-flight test, after a re-chargefollowing the pre-flight test, or at any other time).

Data Logging

The method 100 may additionally include logging operation data of theUAV collected during execution of the prescribed mission by the UAV,and/or prompting an operator associated with the UAV to exchange acomponent within the UAV based on the operation data and a projectedlife of the component if necessary. Generally, logging operation datafunctions to collect data pertaining to use of the UAV and itssubsystems over the course of various missions and to aggregate thisdata into logs through which discrete components or subsystems of theUAV can be monitored. Furthermore, as the UAV completes one missionafter the next and as components and subsystems within exhibitincreasing amounts of wear, component and subsystem logs can be comparedto regulated or recommended component and subsystem lifespans anddeliver prompts for preemptively exchanging components and subsystems ofthe UAV before predicted or projected failure.

A variety of data can be collected from the UAV during across variousmissions, such as a number of hours that the UAV is in flight, batterycharge/discharge cycles, takeoffs and landings, ground or air distancetravel, motor rotations, peak or average fuselage temperature, sunexposure, moisture (e.g., rain) exposure, peak or average batterytemperature, peak battery output current and voltage, peak or averagemotor temperature, pitch, yaw, and roll response, maximum altitude, peakor average speed, etc. and then augment discrete logs for each criticalcomponent and subsystem within the UAV with these monitored data. Thisdata may be collected as UAV operation data in S130 or may be collectedindependently/for other purposes. Data may be collected in real-time asthe UAV executes a mission or at any other time; data collected caninclude raw sensor and actuator data from the UAV, or the UAV cancompress any of these data and then transmit compressed flight data tothe remote UAV management network.

In one example, discrete logs are maintained for each of a battery, amotor, a prop, a fuselage, control surface actuators, and/or any otherhigh-wear or critical component or subsystem within a particular UAV,and these logs are stored on the remote UAV management network, in aremote database, and/or locally on the UAV, such as in memory within theco-pilot module. In this example, the UAV can distribute mission hours,charge/discharge cycle data, peak or average battery temperature, peakbattery output current and voltage, and peak or average fuselagetemperature to a battery-specific log; distribute mission hours, motorrotations, peak battery output current and voltage, and peak or averagemotor and fuselage temperature to a motor-specific log; and distributemission hours, pitch, yaw, and roll response, maximum altitude, peak oraverage speed, sun exposure, moisture exposure, takeoff and landingdata, and peak or average fuselage temperature to a fuselage-specificlog.

Logs can be stored for components and/or subsystems of a UAV under asubstantially unique identifier for the UAV or high-priority componentwithin the UAV. For example, component and subsystems logs can be storedunder an identifier pointing to the co-pilot module within the UAV, suchas to a unique serial number or wireless communication address of theco-pilot. Alternatively, component and subsystems logs can be storedunder an identifier pointing to a serial number of the fuselage or to aserial number or GPS address of the autopilot module within the UAV. UAVdata can thus be stored under a unique identifier for that UAV todistinguish data from other UAVs (e.g., in a fleet of UAVs).

Furthermore, the UAV can maintain a database of component and subsystemregulated and/or manufacture-suggested part lives, compare a log foreach critical component or subsystem within the UAV to these regulatedand/or manufacture-suggested part lives, and deliver prompts to exchangecomponents or subsystems within the UAV to an operator accordingly. Forexample, a manufacturer of a motor currently installed in the UAV cansuggest a maximum useful life of 100 hours for the motor, the UAV cancount each minute that the UAV in flight with the current motor, andtransmit a prompt to exchange the motor to an account of an operator ofthe UAV when the number of hours on the motor reaches 95 hours, 98hours, and 99 hours. In this example, the prompt can be accessed by theoperator through a notification within a native UAV managementapplication executing on a mobile computing device (e.g., a smartphone,a tablet,) or through a web browser executing on a computing device(e.g., a desktop computer, a laptop computer, a tablet). In anotherexample, a government (e.g., federal) regulation can stipulate a maximumtime of 200 hours, a maximum of two crashes, a maximum of 100 takeoffs,and a maximum heat exposure within a fuselage of 16,000° F.-hours (i.e.,an integral of fuselage temperature over time in the air) for a UAVfuselage of the type (e.g., size) of the UAV, and the UAV can track eachof these parameters in a fuselage-specific log for the UAV. In thisexample, the UAV can identify an upcoming breach of any of theseregulated parameters by the UAV (or breach of the regulation in theevent of a third crash) and deliver a corresponding notification to theoperator to replace the fuselage of the UAV with a new fuselage (i.e.,to move other actuators, sensors, and controllers from the old fuselageto the new fuselage).

Such prompts can be delivered to the operator at the beginning of amission involving the UAV, during the mission with the UAV when acomponent within UAV approaches or surpasses one or more regulated orsuggested lifespan, upon completion of the mission, and/or when theoperator and/or the UAV are near a repair shop or service center. TheUAV or UAV platform can also point the operator to stored log data ofthe UAV and/or to UAV data specific to component of the UAV referencedin the prompt. For example, an application can retrieve and open logdata of the UAV in response to selection of the prompt. Operator accessto UAV log data can therefore be handled through prompts (e.g.,notifications).

The UAV (and/or platform) can similarly cooperate to detect componentsof the UAV that have already failed and to deliver corresponding promptsto the operator to replace the failed component(s) accordingly. However,the method 100 can function in any other way to log use of one or morecomponents and/or subsystems of the UAV over a series of missions and todeliver any other suitable UAV maintenance prompt to an associatedoperator or operator account.

Component Update

The method 100 may additionally or alternatively include detecting arecent modification to a component installed in the UAV based on theoperation data and an operation history of the UAV, and/or updating aflight record of the UAV according to the detected modification.Generally, detecting a recent modification functions to characterizeoperation of one or more current components or subsystems of the UAV andto compare these characterizations to previous characterizations ofcomponents and/or subsystems within the UAV to detect a possible recentexchange of a component or subsystem of the UAV. In particular, thedetection process can extract a characteristic of a battery, a motor, aprop, a control surface actuator, and/or a fuselage of the UAV, etc.from UAV flight data collected during execution of a current pre-missiontest sequence and/or a current mission and then compare thesecharacteristics to characteristics of the same part types extracted fromUAV data collected during execution of an immediately precedingpre-mission test sequence and/or an immediately preceding mission todetect a change in one or more characteristics that would suggest thatone or more components (or subsystems) within the UAV was exchangedbetween the current and the preceding mission. Updates to the flightrecord can then function to automatically update a component orsubsystem log to reflect a new component or subsystem installed intoUAV, such as by resetting a log of a corresponding component orsubsystem for total hours, heat exposure, takeoffs, and/or crashes, etc.

The method 100 characterizes UAV components from UAV data collectedduring pre-mission test sequences executed by the UAV before eachmission such that characterizations may be generated from UAV datagenerated under substantially similar conditions (i.e., test flightpaths) across various missions on various different dates. UAV data canbe characterized wherein the data is collected from an end (e.g., afinal two minutes) of a previous flight, from a beginning (e.g., a firsttwo minutes) of a current flight, and these characterizations arecompared to automatically detect a change to a component or subsysteminstalled in the UAV.

In one example, the method 100 models a change in UAV air speed relativeto a change in motor speed from current UAV data and detects that theprop of the UAV was replaced with a different (e.g., new) prop if thenew model for UAV air speed relative to motor speed differs from a modelfor UAV air speed relative to motor speed calculated during a previousmission by more than a threshold amount. In this example, the method 100can interface with an air speed sensor, or can calculate an air speed ofthe UAV based on a local wind speed and direction (retrieved from aweather database), GPS coordinates of the UAV, and a UAV trajectory.

In another example, the method 100 models a current draw of the motorrelative to UAV air speed and detects that the motor of the UAV wasreplaced with a different (e.g., new) motor if the new model for motorcurrent draw relative to UAV air speed differs from a similar modelcalculated during a previous mission by more than a threshold amount. Inthis example, the method 100 can also compensate for a prop change inthis model. The method 100 can also compare the new motor current drawv. UAV air speed model to similar models of motor types currentlyavailable and suitable for the fuselage to predict what motor type wasinstalled into the fuselage.

In yet another example, the method 100 models a sensitivity of thepitch, yaw, and roll of the UAV to changes in flight surfaces andcompare this model to a similar model generated during a previousmission to determine if the fuselage of the UAV was repaired orreplaced. The method 100 can also manipulate this current model incomparison to the previous model to detect changes to a payload carriedby the UAV, to detect structure added to or removed from the fuselage,to detect a change in (or a new position of) a center of gravity of theUAV, or to detect a change in the weight of the UAV.

In another example, the method 100 models an output voltage of a batterywithin the UAV relative to throttle setting and compares this new modelto a similar previous model to detect replacement of a batterypreviously installed in the UAV with a new battery.

As in these examples, the method 100 can also prompt an operator toconfirm a detected change of a battery, motor, fuselage, or prop, etc.in the UAV, to enter whether the component is new, used, or refurnished,and/or to enter a make and model of the replaced component, etc. The UAVcan then update a log corresponding to an exchanged componentaccordingly.

The method can implement similar methods and techniques to process UAVdata in real-time and to make adjustment to UAV parameters substantiallyin real-time during execution of the current mission. For example, themethod can monitor a state of charge of a battery within the UAV duringa flight and then return the UAV to a launch site (or rally point,landing area, takeoff area, etc.) if the battery level approaches orreaches a threshold minimum state required to reliably return the UAV toan operator. In another example, the method can monitor local weatherconditions—such as through sensors within the UAV or data retrieved froma remote weather database—and react to changing weather conditions bychanging flight parameters of the UAV (e.g., speed, direction, attitude,subregion of a ground area of interest to fly over, etc.). In yetanother example, the method can detect changes to the UAV and/orfailures of component of the UAV while in flight and then automaticallyexecute a corrective action (e.g., to execute a glide landing routine toland the UAV in a designated landing area in response to a detectedmotor failure) and/or deliver a prompt to an operator to take acorrective action accordingly. The method can therefore implement a‘continuous test sequence’ (similar to the pre-mission test sequence) tocollect and handle UAV data during execution of a mission. However, themethod can implement any other method or technique to collect and handledata from one or more UAVs.

The UAV and methods of the invention can be embodied and/or implementedat least in part as a machine configured to receive a computer-readablemedium storing computer-readable instructions. The instructions can beexecuted by computer-executable components integrated with the vehicle,scheduling kiosk(s), a remote scheduling server,hardware/firmware/software elements of a user computer or mobile device,or any suitable combination thereof. Other systems and methods of theinvention can be embodied and/or implemented at least in part as amachine configured to receive a computer-readable medium storingcomputer-readable instructions. The instructions can be executed bycomputer-executable components integrated by computer-executablecomponents integrated with apparatuses and networks of the typedescribed above. The computer-readable medium can be stored on anysuitable computer readable media such as RAMs, ROMs, flash memory,EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or anysuitable device. The computer-executable component can be a processorbut any suitable dedicated hardware device can (alternatively oradditionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

1. A method for adaptive mission execution by an unmanned aerial vehicle(UAV), the method comprising: receiving a set of mission parameterscorresponding to an initial UAV mission, the mission parameters defininga first area to be imaged by a camera of the UAV; initiating executionof the initial UAV mission; collecting UAV operation data during flightof the UAV, the UAV operation data comprising aerial images capturedduring execution of the initial UAV mission; during flight of the UAV,performing an analysis of the aerial images; during flight of the UAV,calculating a set of modified mission parameters based on the set ofmission parameters and the analysis of the aerial images, the set ofmodified mission parameters corresponding to a modified UAV mission; andin response to calculating the set of modified mission parameters,automatically executing the modified UAV mission on the UAV.
 2. Themethod of claim 1, wherein: the method further comprises, during flightof the UAV, receiving a flightpath from a second UAV, wherein theflightpath comprises a flightpath segment associated with imaging afirst region of the first area; calculating the set of modified missionparameters is performed based further on the flightpath; and themodified mission parameters define a second area to be imaged by thecamera, wherein the second area does not comprise the first region. 3.The method of claim 2, wherein the flightpath segment defines a secondUAV position over the first region.
 4. The method of claim 2, whereinthe first area comprises the second area.
 5. The method of claim 1,wherein performing the analysis of the aerial images comprises detectingan unsatisfactory portion of a first image of the aerial images.
 6. Themethod of claim 5, wherein: the first image depicts a first region ofthe first area, wherein the unsatisfactory portion is within thedepiction of the first region; and calculating the set of modifiedmission parameters comprises determining a modified flight path based onthe unsatisfactory portion, wherein the modified flight path comprises aflightpath segment associated with re-imaging the first region anddefining a UAV position over the first region.
 7. The method of claim 5,wherein: the set of mission parameters comprises a first set of cameraoperation parameters associated with the camera; calculating the set ofmodified mission parameters comprises determining, based on the firstset of camera operation parameters and the unsatisfactory portion, amodified set of camera operation parameters associated with the camera;and automatically executing the modified UAV mission comprises operatingthe camera based on the modified set of camera operation parameters. 8.The method of claim 5, wherein the unsatisfactory portion comprises animage blur artifact.
 9. The method of claim 5, wherein theunsatisfactory portion comprises a depiction of a shadow.
 10. The methodof claim 1, further comprising: during execution of at least one of theinitial UAV mission and the modified UAV mission, receiving a set ofoutput voltages of the UAV, comprising, at each of a set of throttlesettings receiving a respective output voltage of the UAV; and based onthe set of output voltages, determining a battery state of charge of theUAV.
 11. The method of claim 10, wherein: the battery state of charge isindicative of a condition in which the UAV is incapable of completingthe initial UAV mission due to insufficient energy; and calculating theset of modified mission parameters is performed based further on thebattery state of charge, wherein the UAV is expected to be capable ofcompleting the modified UAV mission.
 12. The method of claim 1, furthercomprising: throughout execution of the initial UAV mission and themodified UAV mission, sampling a set of usage parameters associated withthe UAV, the set of usage parameters comprising at least one of: a motorspeed parameter, a propeller usage parameter, a control surface actuatorusage parameter, and a fuselage usage parameter; for each usageparameter of the set, determining proximity of the usage parameter to arespective life limit associated with the usage parameter; and inassociation with usage during at least one of the initial UAV missionand the modified UAV mission, pre-emptively replacing at least one of amotor, a propeller, a control surface actuator, and a fuselage of theUAV based on proximity of the usage parameter to the associated lifelimit.
 13. The method of claim 12, further comprising: for each of a setof throttle settings, sampling a respective steady state temperaturewithin a fuselage of the UAV; and determining a maximum allowablethrottle setting for at least one of the initial UAV mission and themodified UAV mission based upon the steady state temperatures.
 14. Themethod of claim 1, wherein: the initial UAV mission comprises followingan oil pipeline while taking a set of samples with a hydrocarbon sensorof the UAV; identifying a position of an anomaly in hydrocarbon levels,based upon analysis of the set of samples; and executing the modifiedUAV mission; and the modified UAV mission comprises a flightpathcentered substantially about the position of the anomaly.
 15. A methodfor adaptive mission execution by an unmanned aerial vehicle (UAV), themethod comprising: at the UAV, executing a pre-mission flight test;determining a set of UAV performance parameters based on the pre-missionflight test; receiving a set of mission parameters corresponding to aninitial UAV mission, the mission parameters defining a first area to beimaged by a camera of the UAV, wherein the set of mission parameters aredetermined based on the set of UAV performance parameters; initiatingexecution of the initial UAV mission; collecting UAV operation dataduring flight of the UAV, the UAV operation data comprising aerialimages captured during execution of the initial UAV mission; performingan analysis of the aerial images; calculating a set of modified missionparameters based on the set of mission parameters and the analysis ofthe aerial images, the set of modified mission parameters correspondingto a modified UAV mission; and in response to calculating the set ofmodified mission parameters, automatically executing the modified UAVmission at the UAV.
 16. The method of claim 15, wherein: executing thepre-mission flight test comprises performing level flight substantiallyat a first altitude and substantially at full propulsive power; and theset of UAV performance parameters comprises a maximum airspeed parameterdetermined based on the level flight.
 17. The method of claim 15,wherein: executing the pre-mission flight test comprises performing anear-vertical climb substantially at full propulsive power; and the setof UAV performance parameters comprises a maximum thrust parameterdetermined based on the near-vertical climb.
 18. The method of claim 15,wherein: executing the pre-mission flight test comprises entering astalling configuration; and the set of UAV performance parameterscomprises a stall speed parameter determined based on the stallingconfiguration.
 19. The method of claim 15, wherein: executing thepre-mission flight test comprises performing a cycling ramping of amotor of the UAV from a substantially no-power setting to asubstantially full-power setting; and the set of UAV performanceparameters comprises at least one of a motor torque curve and a motorefficiency curve determined based on the cycling ramping.
 20. The methodof claim 15, wherein: executing the pre-mission flight test comprisesperforming a cycling of pitch, yaw, and roll; and the set of UAVperformance parameters comprises at least one of a fuselage efficiencyparameter and a fuselage weight parameter determined based on thecycling of pitch, yaw, and roll.